home *** CD-ROM | disk | FTP | other *** search
/ PC World 1999 December / PCWorld_1999-12_cd.bin / Software / Servis / UrthMDB / Codegen / UMCG Design Notes.ht_ / UMCG Design Notes.ht
Text File  |  1999-10-03  |  16KB  |  352 lines

  1. <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
  2. <html>
  3.  
  4. <head>
  5. <meta http-equiv="Content-Type"
  6. content="text/html; charset=iso-8859-1">
  7. <meta name="GENERATOR" content="Microsoft FrontPage 2.0">
  8. <title>Urthman's MDB Code Generator Design Notes</title>
  9. </head>
  10.  
  11. <body bgcolor="#A3CDDA">
  12. <div align="center"><center>
  13.  
  14. <table border="1" cellpadding="8" cellspacing="0" width="100%"
  15. bgcolor="#5A8BAB">
  16.     <tr>
  17.         <td align="center" width="100%"><font color="#FFFF00"
  18.         size="6" face="Arial"><em><strong>Urthman's MDB Code
  19.         Generator.</strong></em></font></td>
  20.     </tr>
  21. </table>
  22. </center></div><div align="center"><center>
  23.  
  24. <table border="0" cellpadding="8" cellspacing="8" width="100%">
  25.     <tr>
  26.         <td align="center"><font size="5" face="Arial"><strong>Design
  27.         Notes:</strong></font></td>
  28.     </tr>
  29.     <tr>
  30.         <td><ol>
  31.             <li><a href="#Answers"><font size="3" face="Arial"><strong>Common
  32.                 Answers</strong></font></a></li>
  33.             <li><a href="#Notes"><font size="3" face="Arial"><strong>Design
  34.                 Notes</strong></font></a></li>
  35.             <li><a href="#Features"><font size="3" face="Arial"><strong>New
  36.                 Features</strong></font></a></li>
  37.         </ol>
  38.         </td>
  39.     </tr>
  40.     <tr>
  41.         <td><font size="2" face="Arial">This section is designed
  42.         to provide additional information that has popped up in
  43.         various email messages from both registered and
  44.         unregistered users. I certainly appreciate all of the
  45.         feedback.</font></td>
  46.     </tr>
  47. </table>
  48. </center></div>
  49.  
  50. <hr>
  51. <div align="center"><center>
  52.  
  53. <table border="0" cellpadding="8" cellspacing="8" width="100%">
  54.     <tr>
  55.         <td><a name="Answers"><font size="4" face="Arial"><strong>Common
  56.         Answers:</strong></font></a></td>
  57.     </tr>
  58.     <tr>
  59.         <td><font size="2" face="Arial"><strong>1. Development
  60.         platform:</strong> The program has been tested both
  61.         extensively and successfully on Windows 95, Windows 98
  62.         and WIndows NT v4.0, with both MS Office 95 and 97. The
  63.         development platform of choice is Visual Basic v5.0
  64.         Professional Edition with Service Pack 3.</font></td>
  65.     </tr>
  66.     <tr>
  67.         <td><font size="2" face="Arial"><strong>2. MS Jet 3.5x
  68.         compatibility issue:</strong> Earliest releases of the
  69.         MDB Code Generator were built with reference to the
  70.         Microsoft DAO 3.51 Library. These early releases were
  71.         also scaled down packages for size with the mistaken
  72.         assumption that everyone using this program has both
  73.         Microsoft Visual Basic v5.0 with Service Pack 3 and a
  74.         version of Microsoft Access 95 or 97 with all of the
  75.         available updates.</font><p><font size="2" face="Arial">This
  76.         current release is distributed with a more complete
  77.         package including all of the latest MS Jet components
  78.         necessary and available at the time of release.</font></p>
  79.         <p><font size="2" face="Arial"><strong>Most recently</strong>,
  80.         an Internet security issue has arisen dealing with the
  81.         ODBC component included with this software package.
  82.         Although this software doesn't use ODBC, the component
  83.         has been updated to the preferred version for MS Jet
  84.         v4.0.</font></p>
  85.         </td>
  86.     </tr>
  87.     <tr>
  88.         <td><font size="2" face="Arial"><strong>3. Visual Basic
  89.         Versions:</strong> Visual Basic v6.0 users will most
  90.         likely require the Visual Basic v5.0 runtimes. No one has
  91.         reported trying out the code modules generated by our
  92.         software with VB4 projects.</font></td>
  93.     </tr>
  94.     <tr>
  95.         <td><font size="2" face="Arial"><strong>4. Installation
  96.         Problems:</strong> This program's installer is a slightly
  97.         modified version of the native installer included with
  98.         the Visual Basic 5.0 Professional Edition. Refer to the
  99.         "Code Chunks" section of our web site for
  100.         references to this "slight modification". Much
  101.         greater control over the programs installation was
  102.         established using the Urthman's Setup LST Editor also
  103.         available at our web site.</font></td>
  104.     </tr>
  105. </table>
  106. </center></div>
  107.  
  108. <hr>
  109. <div align="center"><center>
  110.  
  111. <table border="0" cellpadding="8" cellspacing="8" width="100%">
  112.     <tr>
  113.         <td><a name="Notes"><font size="4" face="Arial"><strong>Design
  114.         Notes:</strong></font></a></td>
  115.     </tr>
  116.     <tr>
  117.         <td><font size="2" face="Arial"><strong>1. Dynamic
  118.         Database Creation:</strong> The code generator
  119.         table-create function has been moved into the routine
  120.         that opens the table within the database. This allows for
  121.         upgradable code utilizing the original (existing)
  122.         database:</font><p><font size="2" face="Arial">When a
  123.         database is accessed for the first time, it is the result
  124.         of a call to access a table within that database. If the
  125.         database file does not exist, then the database file is
  126.         created, and since the table being accessed also doesn't
  127.         exist, then that table is also created with all of it's
  128.         fields and indexes from the original snapshot database
  129.         from which the code module was generated.</font></p>
  130.         <p><font size="2" face="Arial">Under this strategy, any
  131.         table that is never accessed would never be created, and
  132.         any subsequent upgrades that use additional tables can
  133.         then be dropped onto the original database and the
  134.         additional tables will be created within that database
  135.         without the need to upgrade or otherwise convert the
  136.         original data.</font></p>
  137.         </td>
  138.     </tr>
  139.     <tr>
  140.         <td><font color="#000000" size="2" face="Arial"><strong>2.
  141.         Maintaining synchronization with multiple keys:</strong>
  142.         When non-primary keys exist (in addition to the primary),
  143.         the save and record delete routines will restore the
  144.         primary key to do the necessary validation-search prior
  145.         to the actual function of the respective routines.
  146.         Immediately following the save or delete, the original
  147.         key which was active prior to the function of the
  148.         subroutine is again restored, and the file
  149.         re-synchronized with that key/index based on the key
  150.         value of the same or next higher record. If this
  151.         same-or-next-higher record is not a valid record, the
  152.         same-or-next-lower record is found.</font></td>
  153.     </tr>
  154.     <tr>
  155.         <td><font color="#000000" size="2" face="Arial"><strong>3.
  156.         Find function extensions:</strong> The "Find
  157.         Extensions" can be used as an alternative to the
  158.         "Next" and "Previous" function and as
  159.         a recovery from a failed "Find" operation.
  160.         Where the standard "Find" or "By"
  161.         routines search for a record that matches the search
  162.         criteria ("="), the FindNX and FindPV search
  163.         for the next higher or next lower record, which allows
  164.         for a much looser criteria.</font><p><font
  165.         color="#000000" size="2" face="Arial">For example, given
  166.         a "Find" (or "By") operation to seek
  167.         a specific criteria; if the search fails, you might want
  168.         to look for the record immediately above or below that
  169.         record rather than leave the database without a current
  170.         record. A standard Next or Previous may not provide the
  171.         record immediately above or below the failed search.</font></p>
  172.         </td>
  173.     </tr>
  174.     <tr>
  175.         <td><font size="2" face="Arial"><strong>4. File Type
  176.         Registration:</strong> In the advanced options of the
  177.         registered version, there is an option to include a
  178.         registry entry which adds a file association and
  179.         corresponding Windows Explorer file menu function. This
  180.         means that you can use Windows Explorer to locate your
  181.         MDB files, right-click on them and select VB Code
  182.         Generator from the pop up menu. The code generator is
  183.         started with that database loaded and ready to generate
  184.         (or re-generate) code.</font></td>
  185.     </tr>
  186.     <tr>
  187.         <td><font size="2" face="Arial"><strong>5. Improved
  188.         Project Management:</strong> In the original release,
  189.         registered versions of the program would build and
  190.         maintain a project listing allowing the user to select a
  191.         previously generated database definition and pop the code
  192.         out with all of the selected tables and database specific
  193.         options already in place. This is great for when you need
  194.         to redesign the database and table layouts.</font><p><font
  195.         size="2" face="Arial">The new release manages this data
  196.         in separate configuration files which can then be copied
  197.         for backup or deleted individually.</font></p>
  198.         </td>
  199.     </tr>
  200.     <tr>
  201.         <td><font size="2" face="Arial"><strong>6. Table Field
  202.         Verification:</strong> As a natural extension of table
  203.         creation "on-the-fly -- if-and-when needed", a
  204.         table field verification subroutine has been added to the
  205.         extensive code generated by this program. In the event
  206.         that your program must be upgraded to include additional
  207.         fields in a given table, rather than having to require
  208.         your end user dump or convert their original database,
  209.         this feature can jump into a field verification routine
  210.         that will create the additional fields in the database
  211.         table.</font><p><font size="2" face="Arial"><strong>However:</strong>
  212.         Specific changes in the index structure and modifications
  213.         for field sizes are not available at this time. Also,
  214.         deleted fields will merely be ignored. If a discontinued
  215.         field is either "Required" or does not
  216.         "Allow Zero Length", saving new records will
  217.         result in an error.</font></p>
  218.         </td>
  219.     </tr>
  220.     <tr>
  221.         <td><font size="2" face="Arial"><strong>7. Read-Write
  222.         Permissions:</strong> Another natural extension of an
  223.         existing feature has been added to the code generator
  224.         arsenal. In the advanced options, there is a selection
  225.         for how you want your program to address security: either
  226.         by the default "admin" with no password for all
  227.         users; or with a user name and (optional) password that
  228.         your program will pass along into the code module.</font><p><font
  229.         size="2" face="Arial">When the user name and (optional)
  230.         password is controlled by your program, the <strong>save</strong>
  231.         and <strong>kill</strong> subroutines are changed to a
  232.         "<em><strong>Function As Boolean</strong></em>"
  233.         routine, returning a True or False to indicate whether
  234.         the operation was successful or not. If the designated
  235.         user does not have write permissions, the <strong>save</strong>
  236.         and <strong>kill</strong> operations will return a <em>False</em>,
  237.         and if the operation was successful, the operation
  238.         returns a <em>True</em>.</font></p>
  239.         </td>
  240.     </tr>
  241.     <tr>
  242.         <td><font size="2" face="Arial"><strong>8. Find
  243.         Extensions:</strong> These find extensions no longer have
  244.         an option for passing parameters. Instead, the Find and
  245.         By routines will leave the index field variables
  246.         populated with the initial parameters if the find
  247.         operation fails. Thus, you don't need to worry about the
  248.         parameters or field data after a failed Find<strong>:</strong></font><div
  249.         align="center"><center><table border="0" cellpadding="8"
  250.         cellspacing="4" width="100%">
  251.             <tr>
  252.                 <td bgcolor="#FFFFFF"><blockquote>
  253.                     <p><font size="2" face="Arial"><strong>call
  254.                     mdbMyData.MyTableFind(Data1, Data2,
  255.                     vbNullString)<br>
  256.                     if mdbMyDate.MyTableERR Then call
  257.                     mdbMyData.MyTableFindNX</strong></font></p>
  258.                 </blockquote>
  259.                 </td>
  260.             </tr>
  261.         </table>
  262.         </center></div></td>
  263.     </tr>
  264.     <tr>
  265.         <td><font size="2" face="Arial"><strong>9. IsKey
  266.         function:</strong> This function returns a True if the
  267.         current index is the Primary Key, otherwise returns a
  268.         False.</font></td>
  269.     </tr>
  270. </table>
  271. </center></div>
  272.  
  273. <hr>
  274. <div align="center"><center>
  275.  
  276. <table border="0" cellpadding="8" cellspacing="8" width="100%">
  277.     <tr>
  278.         <td><a name="Features"><font size="4" face="Arial"><strong>New
  279.         Features:</strong></font></a></td>
  280.     </tr>
  281.     <tr>
  282.         <td><font size="2" face="Arial"><strong>1. Multiple Code
  283.         Modules:</strong> This feature was added to allow
  284.         multiple code modules to be created for the purpose of
  285.         building large data processing software that requires
  286.         multiple databases for handling large numbers of records.
  287.         The additional code modules refer to the table data in
  288.         the original code module, and contain little more than
  289.         the routines for initializing (and creating) the database
  290.         and tables, and writing records to those tables.</font></td>
  291.     </tr>
  292.     <tr>
  293.         <td><font size="2" face="Arial"><strong>2. Updated data
  294.         type support:</strong> We have added the Currency data
  295.         type to our list of supported data types. Previously, the
  296.         Currency data type was converted to the Double data type.
  297.         This has been corrected.</font></td>
  298.     </tr>
  299.     <tr>
  300.         <td><font size="2" face="Arial"><strong>3. Modifications
  301.         for support of the Urthman's MDB Construction Kit:</strong>
  302.         The Urthman's MDB Code Generator has an add-on program
  303.         whose function is to provide a means for the quick and
  304.         effective creation of MS Access databases and tables, as
  305.         well as the generation of a code module for exchanging
  306.         data between your MS Access tables and ASCII text files.
  307.         See the Urthman's MDB Construction Kit on our web site.</font></td>
  308.     </tr>
  309. </table>
  310. </center></div>
  311.  
  312. <hr>
  313. <div align="center"><center>
  314.  
  315. <table border="0" cellpadding="8" cellspacing="0" width="100%">
  316.     <tr>
  317.         <td align="center" width="33%"><div align="center"><center><table
  318.         border="0" cellpadding="8" cellspacing="0"
  319.         bgcolor="#C0C0C0">
  320.             <tr>
  321.                 <td align="right" valign="top"><font
  322.                 color="#000000" size="1" face="Arial"><strong>Contact:</strong></font></td>
  323.                 <td valign="top"><font color="#000000" size="1"
  324.                 face="Arial"><strong>John Stanley Enterprises</strong><br>
  325.                 PO Box 1672<br>
  326.                 Valrico, FL 33595-1672</font></td>
  327.             </tr>
  328.             <tr>
  329.                 <td align="right" valign="top"><font size="1"
  330.                 face="Arial"><strong>URL:</strong></font></td>
  331.                 <td><a href="http://www.a-znet.com/jse/"><font
  332.                 size="1" face="Arial"><strong>http://www.a-znet.com/jse/</strong></font></a></td>
  333.             </tr>
  334.             <tr>
  335.                 <td align="right" valign="top"><font
  336.                 color="#000000" size="1" face="Arial"><strong>Email:</strong></font></td>
  337.                 <td valign="top"><a href="mailto:urthman@usa.net"><font
  338.                 color="#000000" size="1" face="Arial"><strong>urthman@usa.net</strong></font></a><font
  339.                 color="#000000" size="1" face="Arial"><strong> </strong></font></td>
  340.             </tr>
  341.         </table>
  342.         </center></div></td>
  343.         <td align="center" width="33%"><font face="Arial"></font> </td>
  344.         <td align="center" width="33%"><font size="1"
  345.         face="Arial">Microsoft, Windows, NT and Visual Basic are
  346.         registered trademarks of the Microsoft Corporation.</font></td>
  347.     </tr>
  348. </table>
  349. </center></div>
  350. </body>
  351. </html>
  352.